home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / tex / cs_tex_4 / cstex4_2.zoo / tugboat.lzh / STYLES / TUGBOAT / TUGBOAT.COM < prev    next >
Text File  |  1990-06-11  |  24KB  |  785 lines

  1. % version 1.05
  2. % 29 Mar 90
  3. %
  4. %               *****     TUGBOAT.COM   *****
  5. %
  6. %       This file contains macros which are common to both the PLAIN
  7. %       and LaTeX style files for TUGboat.
  8.  
  9. %       Among other things, it contains supplementary definitions for
  10. %       abbreviations and logos that appear in TUGboat.  See the bottom
  11. %       of the file (after \endinput) for a list of items defined.
  12.  
  13. % *************************************************************************
  14.  
  15. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  16. %
  17. %     *****  helpful shorthand  *****
  18. %
  19.  
  20. %  The following allow for easier changes of category.  These require that
  21. %  the character be addressed as a control-sequence: e.g. \makeescape\/ will
  22. %  make the / an escape character.
  23.  
  24. \def\makeescape#1{\catcode`#1=0 }
  25. \def\makebgroup#1{\catcode`#1=1 }
  26. \def\makeegroup#1{\catcode`#1=2 }
  27. \def\makemath#1{\catcode`#1=3 }
  28. \def\makealign#1{\catcode`#1=4 }
  29. \def\makeeol#1{\catcode`#1=5 }
  30. \def\makeparm#1{\catcode`#1=6 }
  31. \def\makesup#1{\catcode`#1=7 }
  32. \def\makesub#1{\catcode`#1=8 }
  33. \def\makeignore#1{\catcode`#1=9 }
  34. \def\makespace#1{\catcode`#1=10 }
  35. \def\makeletter#1{\catcode`#1=11 }
  36. \def\makeother#1{\catcode`#1=12 }
  37. \def\makeactive#1{\catcode`#1=13 }
  38. \def\makecomment#1{\catcode`#1=14 }
  39.  
  40. \def\makeatletter{\catcode`\@=11 }      % included for historical reasons
  41. \chardef\other=12
  42. \def\makeatother{\catcode`\@=\other}
  43.  
  44.                                         % alternative to localization
  45. \def\savecat#1{%
  46.   \expandafter\xdef\csname\string#1savedcat\endcsname{\the\catcode`#1}}
  47. \def\restorecat#1{\catcode`#1=\csname\string#1savedcat\endcsname}
  48.  
  49.  
  50. \savecat\@
  51. \makeletter\@           % used, as in PLAIN, in protected control sequences
  52.  
  53.                         % for restoring meanings of global control sequences
  54. \def\SaveCS#1{%
  55.   \def\scratch{\expandafter\let\csname saved@@#1\endcsname}%
  56.   \expandafter\scratch\csname#1\endcsname}
  57. \def\RestoreCS#1{%
  58.   \def\scratch{\expandafter\let\csname#1\endcsname}%
  59.   \expandafter\scratch\csname saved@@#1\endcsname}
  60.  
  61.  
  62. % To distinguish between macro files loaded
  63.  
  64. \def\plaintubstyle{plain}
  65. \def\latextubstyle{latex}
  66.  
  67. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  68. %
  69. %     *****  abbreviations and logos  *****
  70. %
  71.  
  72.  
  73. \def\AMS{American Mathematical Society}
  74.  
  75. \def\AmSTeX{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox
  76.         {\the\textfont2 M}\kern-.125em{\the\textfont2 S}-\TeX}
  77.  
  78. \def\aw{A\kern.1em-W}
  79. \def\AW{Addison\kern.1em-\penalty\z@\hskip\z@skip Wesley}
  80.  
  81. \def\BibTeX{{\rm B\kern-.05em{\smc i\kern-.025emb}\kern-.08em\TeX}}
  82.  
  83. \def\CandT{{\sl Computers \& Typesetting}}
  84.  
  85. \def\DVItoVDU{DVIto\kern-.12em VDU}
  86.  
  87. %       Japanese TeX
  88. \def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}}
  89.  
  90. \def\JoT{{\sl The Joy of \TeX}}
  91.  
  92. %       note -- \LaTeX definition is from LATEX.TEX 2.09 of 7 Jan 86,
  93. %               adapted for additional flexibility in TUGboat
  94. %\def\LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex
  95. %       \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX}
  96. %       note -- broken in two parts, to permit separate use of La,
  97. %               as in (La)TeX
  98. \def\La{\TestCount=\the\fam \leavevmode L\raise.42ex
  99.         \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}}
  100. \def\LaTeX{\La\kern-.15em\TeX}
  101.  
  102.  
  103. %       for Robert McGaffey
  104. \def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}}
  105.  
  106. \font\manual=logo10 % font used for the METAFONT logo, etc.
  107. \def\MF{{\manual META}\-{\manual FONT}}
  108. \def\mf{{\smc Metafont}}
  109. \def\MFB{{\sl The \slMF book}}
  110.  
  111. %       multilingual (INRS) TeX
  112. \def\mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX}
  113.  
  114. \def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}MF}
  115. \def\PCTeX{PC\thinspace\TeX}
  116. \def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}\TeX}
  117.  
  118. \def\Pas{Pascal}
  119.  
  120. \def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
  121. \def\PiCTeX{\PiC\kern-.11em\TeX}
  122.  
  123. \def\plain{{\tt plain}}
  124.  
  125. \def\POBox{P.\thinspace O.~Box }
  126. \def\POBoxTUG{\POBox\unskip~9506, Providence, RI~02940}
  127.  
  128. \def\PS{{Post\-Script}}
  129.  
  130. \def\SC{Steering Committee}
  131.  
  132. \def\SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}}
  133.  
  134. \def\slMF{\MF}
  135. %       Use \font\manualsl=logosl10 instead, if it's available,
  136. %       for \def\slMF{{\manualsl META}\-{\manualsl FONT}}
  137.  
  138. %       Atari ST (Klaus Guntermann)
  139. \def\stTeX{{\smc st\rm\kern-0.13em\TeX}}
  140.  
  141. \def\TANGLE{{\tt TANGLE}}
  142.  
  143. \def\TB{{\sl The \TeX book}}
  144. \def\TP{{\sl \TeX\/}: {\sl The Program\/}}
  145.  
  146. \def\TeX{T\hbox{\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX}}
  147.  
  148. \def\TeXhax{\TeX hax}
  149.  
  150. %       Don Hosek
  151. \def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG}
  152.  
  153. %\def\TeXtures{\TestCount=\the\fam
  154. %       \TeX\-\hbox{$\fam\TestCount\scriptstyle TURES$}}
  155. \def\TeXtures{{\it Textures}}
  156.  
  157. \def\TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT}
  158.  
  159. \def\tubfont{\sl}               % redefined in other situations
  160. \def\TUB{{\tubfont TUGboat\/}}
  161.  
  162. \def\TUG{\TeX\ \UG}
  163.  
  164. \def\UG{Users Group}
  165.  
  166. \def\UNIX{{\smc unix}}
  167.  
  168. \def\VAX{\leavevmode\hbox{V\kern-.12em A\kern-.1em X}}
  169.  
  170. \def\VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX}
  171.  
  172. \def\XeT{\leavevmode\hbox{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT}}
  173.  
  174. \def\WEB{{\tt WEB}}
  175. \def\WEAVE{{\tt WEAVE}}
  176.  
  177.  
  178.  
  179. %********************************************************************
  180.  
  181. \newlinechar=`\^^J
  182. \normallineskiplimit=1pt
  183.  
  184. \clubpenalty=10000
  185. \widowpenalty=10000
  186.  
  187. \def\NoParIndent{\parindent=\z@}
  188. \newdimen\normalparindent        \normalparindent=20pt          % plain = 20pt
  189. \def\NormalParIndent{\global\parindent=\normalparindent}
  190. \NormalParIndent
  191.  
  192. \def\BlackBoxes{\overfullrule=5pt }
  193. \def\NoBlackBoxes{\overfullrule=\z@ }
  194. \def\newline{\hskip\z@ plus \pagewd \break}
  195. \def\nohyphens{\hyphenpenalty\@M\exhyphenpenalty\@M}
  196.  
  197. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  198. %
  199. %     *****  utility registers and definitions  *****
  200. %
  201.  
  202. %       test registers for transient use; paired - internal/external
  203. \newbox\T@stBox                 \newbox\TestBox
  204. \newcount\T@stCount             \newcount\TestCount
  205. \newdimen\T@stDimen             \newdimen\TestDimen
  206. \newif\ifT@stIf                 \newif\ifTestIf
  207.  
  208.  
  209. %       \cs existence test, stolen from TeXbook exercise 7.7
  210. \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax }
  211.  
  212. %       Smashes repeated from AMS-TeX; PLAIN implements only full \smash .
  213. \newif\iftop@           \newif\ifbot@
  214. \def\topsmash{\top@true\bot@false\smash@}
  215. \def\botsmash{\top@false\bot@true\smash@}
  216. \def\smash{\top@true\bot@true\smash@}
  217. \def\smash@{\relax\ifmmode\def\next{\mathpalette\mathsm@sh}%
  218.         \else\let\next\makesm@sh\fi \next }
  219. \def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\box\z@}
  220.  
  221.  
  222. %       Vertical `laps'; cf. \llap and \rlap
  223. \long\def\ulap#1{\vbox to \z@{\vss#1}}
  224. \long\def\dlap#1{\vbox to \z@{#1\vss}}
  225.  
  226. %       And centered horizontal and vertical `laps'
  227. \def\xlap#1{\hbox to \z@{\hss#1\hss}}
  228. \long\def\ylap#1{\vbox to \z@{\vss#1\vss}}
  229. \long\def\zlap#1{\ylap{\xlap{#1}}}
  230.  
  231.  
  232. %       Avoid unwanted vertical glue when making up pages.
  233. \def\basezero{\baselineskip\z@skip \lineskip\z@skip}
  234.  
  235.  
  236. %  Empty rules for special occasions
  237. \def\nullhrule{\hrule height\z@ depth\z@ width\z@ }
  238. \def\nullvrule{\vrule height\z@ depth\z@ width\z@ }
  239.  
  240. %       Support ad-hoc strut construction.
  241. \def\makestrut[#1;#2]{\vrule height#1 depth#2 width\z@ }
  242.  
  243.  
  244. %       Today's date, to be printed on drafts.  Based on TeXbook, p.406.
  245.  
  246. \def\today{\number\day\space \ifcase\month\or
  247.         Jan \or Feb \or Mar \or Apr \or May \or Jun \or
  248.         Jul \or Aug \or Sep \or Oct \or Nov \or Dec \fi
  249.         \number\year}
  250.  
  251. %       Current time; this may be system dependent!
  252. \newcount\hours
  253. \newcount\minutes
  254. \def\SetTime{\hours=\time
  255.         \global\divide\hours by 60
  256.         \minutes=\hours
  257.         \multiply\minutes by 60
  258.         \advance\minutes by-\time
  259.         \global\multiply\minutes by-1 }
  260. \SetTime
  261. \def\now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes}